1. Field of the Invention
The present invention relates to management of distributed computing environments consisting of application servers and Backend Systems that may reside on multiple nodes, and particularly to a method and respective system for dynamically integrating Backend Systems into a J2EE application server environment.
2. Description of Background
Software system architectures that consist of Backend Systems, application servers, and client applications are called three-tier architectures. To cope with various challenging aspects of the development and deployment of such software architectures, the Java2 Enterprise Edition (J2EE) standard has been defined by Sun Microsystems, with assistance by many other contributors. It consists of a set of sub-standards, each of which describes one key aspect that an application server that conforms to the J2EE standard has to comply to. Implementations of the J2EE standard include IBM WebSphere, BEA WebLogic, and SAP NetWeaver.
One of those sub-standards is the Java2 Connector (J2C) architecture, which defines some system contracts and interfaces that describe how legacy Backend Systems should be attached to a J2EE application server. Those Backend Systems do typically not implement the J2EE standard themselves, but they provide a connector (J2C connectors A, B, C—see FIG. 1) that allows J2EE applications to interact with them.
The term “Backend System” is used as a synonym to “Enterprise Information System” (EIS). Typically, these Backend Systems are software applications that may used to store or retrieve data, like databases or transaction systems. However, any server application may be attached to the J2EE application server as a Backend System instance, such that the applications running within the J2EE application server are able to drive all kinds of requests against the Backend System instance that are supported. FIG. 1 is an illustration of this concept.
In order to add Backend System instances A1-A3 to the scope of the J2EE application server, typically an administrator has to deploy the appropriate JC2 connectors A1-A3 (see FIG. 1) along with the specific identification data for that particular Backend System instance. The J2C connector's deployment descriptor defines which properties are required to identify a Backend System instance. The administrator has to provide values that relate to those properties at deployment time. The J2EE application server has to be restarted for these changes to take effect.
Analogously, in order to remove a particular instance of a Backend System instance from the scope of the J2EE application server, typically an administrator has to remove the previously entered data for that particular Backend System instance.
For the purposes of J2EE application server system administration, the type of Backend Systems is coupled with the identification and access data for the individual Backend System instance, thus requiring that the J2EE application server is restarted each time when a Backend System instance is added or removed.
For J2EE application servers that have the need to interact with a highly dynamic set of Backend Systems, this administrative effort for each Backend System instance is unacceptable. For example, systems management applications have to be able to include and exclude an unpredictable set of Backend Systems of the same type without a service interrupt of the systems management application itself. It is quite common that systems are added and removed over time (within a daily, weekly, or other schedule) as the business needs demand various levels of computing capacity. This is particularly true as businesses increasingly adapt “on demand” technologies into their core processes.
To provide high availability of the application server under these circumstances, one typically deploys the application in a clustered environment. When topology updates have to be made, then one of the cluster nodes is modified at a time, while the other nodes remain online. This procedure is called “rolling update”.
However, if there are no other compelling reasons to build a clustered environment than the ability to provide rolling updates when the topology changes, then this solution is far too expensive, since the cluster infrastructure itself needs to be purchased, deployed, and maintained.
Consequently, it is desirable to provide a method and system for adding, using, removing Backend System instances belonging to the same type of Backend System—which does not conform to the J2EE specification —to or from a J2EE application server environment during runtime without restarting the J2EE application server.